home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u288.dms / in.adf / Include / Rexx / RxsLib.i < prev    next >
Encoding:
Text File  |  1990-08-27  |  4.7 KB  |  124 lines

  1. { === rexx/rxslib.h ===================================================
  2.  *
  3.  * Copyright (c) 1986, 1987, 1989 by William S. Hawes (All Rights Reserved)
  4.  *
  5.  * =====================================================================
  6.  * The header file for the REXX Systems Library
  7. }
  8.  
  9. {$I "Include:Rexx/Storage.i"}
  10.  
  11. { Some macro definitions                                               }
  12.  
  13. Const
  14.  
  15.     RXSNAME    = "rexxsyslib.library";
  16.     RXSID    = "rexxsyslib 1.06 (07 MAR 88)\n";
  17.     RXSDIR    = "REXX";
  18.     RXSTNAME    = "ARexx";
  19.  
  20. { The REXX systems library structure.  This should be considered as    }
  21. { semi-private and read-only, except for documented exceptions.        }
  22.  
  23. Type
  24.  
  25.     RxsLib = record
  26.     rl_Node        : Library;    { EXEC library node             }
  27.     rl_Flags    : Byte;        { global flags                  }
  28.     rl_pad        : Byte;
  29.     rl_SysBase    : Address;    { EXEC library base             }
  30.     rl_DOSBase    : Address;    { DOS library base              }
  31.     rl_IeeeDPBase    : Address;    { IEEE DP math library base     }
  32.     rl_SegList    : Address;    { library seglist               }
  33.     rl_NIL        : Address;    { global NIL: filehandle        }
  34.     rl_Chunk    : Integer;    { allocation quantum            }
  35.     rl_MaxNest    : Integer;    { maximum expression nesting    }
  36.     rl_NULL        : NexxStrPtr;    { static string: NULL           }
  37.     rl_FALSE    : NexxStrPtr;    { static string: FALSE          }
  38.     rl_TRUE        : NexxStrPtr;    { static string: TRUE           }
  39.     rl_REXX        : NexxStrPtr;    { static string: REXX           }
  40.     rl_COMMAND    : NexxStrPtr;    { static string: COMMAND        }
  41.     rl_STDIN    : NexxStrPtr;    { static string: STDIN          }
  42.     rl_STDOUT    : NexxStrPtr;    { static string: STDOUT         }
  43.     rl_STDERR    : NexxStrPtr;    { static string: STDERR         }
  44.     rl_Version    : String;    { version/configuration string  }
  45.  
  46.     rl_TaskName    : String;    { name string for tasks         }
  47.     rl_TaskPri    : Integer;    { starting priority             }
  48.     rl_TaskSeg    : Address;    { startup seglist               }
  49.     rl_StackSize    : Integer;    { stack size                    }
  50.     rl_RexxDir    : String;    { REXX directory                }
  51.     rl_CTABLE    : String;    { character attribute table     }
  52.     rl_Notice    : NexxStrPtr;    { copyright notice              }
  53.  
  54.     rl_RexxPort    : MsgPort;    { REXX public port              }
  55.     rl_ReadLock    : Short;    { lock count                    }
  56.     rl_TraceFH    : Address;    { global trace console          }
  57.     rl_TaskList    : List;        { REXX task list                }
  58.     rl_NumTask    : Short;    { task count                    }
  59.     rl_LibList    : List;        { Library List header           }
  60.     rl_NumLib    : Short;    { library count                 }
  61.     rl_ClipList    : List;        { ClipList header               }
  62.     rl_NumClip    : Short;    { clip node count               }
  63.     rl_MsgList    : List;        { pending messages              }
  64.     rl_NumMsg    : Short;    { pending count                 }
  65.     rl_PgmList    : List;        { cached programs               }
  66.     rl_NumPgm    : Short;    { program count                 }
  67.  
  68.     rl_TraceCnt    : Short;    { usage count for trace console }
  69.     rl_avail    : Short;
  70.     end;
  71.     RxsLibPtr = ^RxsLib;
  72.  
  73. Const
  74.  
  75. { Global flag bit definitions for RexxMaster                           }
  76.     RLFB_TRACE    = RTFB_TRACE;        { interactive tracing?          }
  77.     RLFB_HALT    = RTFB_HALT;        { halt execution?               }
  78.     RLFB_SUSP    = RTFB_SUSP;        { suspend execution?            }
  79.     RLFB_STOP    = 6;            { deny further invocations      }
  80.     RLFB_CLOSE    = 7;            { close the master              }
  81.  
  82.     RLFMASK    = 1 + 2 + 4;
  83.  
  84. { Initialization constants                                             }
  85.  
  86.     RXSVERS    = 34;            { main version                  }
  87.     RXSREV    = 7;            { revision                      }
  88.     RXSALLOC    = $800000;        { maximum allocation            }
  89.     RXSCHUNK    = 1024;            { allocation quantum            }
  90.     RXSNEST    = 32;            { expression nesting limit      }
  91.     RXSTPRI    = 0;            { task priority                 }
  92.     RXSSTACK    = 4096;            { stack size                    }
  93.     RXSLISTH    = 5;            { number of list headers        }
  94.  
  95. { Character attribute flag bits used in REXX.                          }
  96.  
  97.     CTB_SPACE    = 0;            { white space characters        }
  98.     CTB_DIGIT    = 1;            { decimal digits 0-9            }
  99.     CTB_ALPHA    = 2;            { alphabetic characters         }
  100.     CTB_REXXSYM    = 3;            { REXX symbol characters        }
  101.     CTB_REXXOPR    = 4;            { REXX operator characters      }
  102.     CTB_REXXSPC    = 5;            { REXX special symbols          }
  103.     CTB_UPPER    = 6;            { UPPERCASE alphabetic          }
  104.     CTB_LOWER    = 7;            { lowercase alphabetic          }
  105.                                                                       
  106. { Attribute flags                                                      }
  107.  
  108.     CTF_SPACE    = 1;
  109.     CTF_DIGIT    = 2;
  110.     CTF_ALPHA    = 4;
  111.     CTF_REXXSYM    = 8;
  112.     CTF_REXXOPR    = 16;
  113.     CTF_REXXSPC    = 32;
  114.     CTF_UPPER    = 64;
  115.     CTF_LOWER    = 128;
  116.  
  117.  
  118. Procedure LockRexxBase(resource : Integer);
  119.     External;
  120.  
  121. Procedure UnlockRexxBase(resource : Integer);
  122.     External;
  123.  
  124.